微信小游戏从立项到上线!谈谈《开心射手》的开发历程
本文是 2018 年 7 月COCOS 对射手座团队(SAGITEAM)的专访,转自 COCOS 公众号:
下面是转载内容:
ID 为 Jacky 的开发者在 Cocos 论坛上分享了其团队制作的小游戏《开心射手》,这一款极具趣味的射击类小游戏,UI 设计卡通精美,游戏中的特效和音效也十分精彩,与其他休闲游戏不同的是,《开心射手》核心玩法主要是在线对战。
从游戏立项到技术选型等整个开发过程 Jacky 做了十分细致的梳理总结并发布在论坛上:
原贴地址:http://forum.cocos.com/t/topic/62521
其中在“动态资源加载与释放技巧”篇章中,射手座团队通过提供一种管理器的设计思路来介绍了 Cocos Creator 的资源加载与释放机制。
由于 JavaScript 语言的限制,要在 Creator 中实现完美的资源自动管理,技术上还是有一些潜在的困难。因此目前 Creator 的项目通常还是由开发者进行手动管理为主,Creator 提供的资源半自动释放为辅。
Jacky 的射手座团队在此基础上,封装了一套更适合自身需要的资源管理方式,这就是我们一直提倡的。因为这样能尽可能地对资源有更细粒度地控制、更便于调试、更符合项目需要、更清楚资源使用上的规则。
当然,Creator 之后也会不断完善自身的资源管理机制,减轻开发者的负担。
微信小游戏产品总监李卿在接受采访时曾这样说,“做游戏的创意是无限的,如果做游戏都是统一的公式,那确实大厂优势更大。但小游戏需要创意和平台能力相互结合,创意和团队大小无关。”
从立项到游戏上线,《开心射手》背后团队做了哪些努力,有哪些值得学习的经验呢?近日,C 姐联系到了该游戏的开发团队射手座,并进行了采访,一起来了解一下。
受访者:Jacky
射手座团队
Q1:可否简要介绍一下《开心射手》这款游戏呢?
《开心射手》对标的游戏是 Bowmasters ,这款游戏的打击感和操作都很不错,评分相当高。但它是一款单机功能为主的休闲游戏,联网对战功能很弱,画面太血腥,不适合年龄较小的玩家和女性玩家。
射手座团队认为,血腥的画面的确给人更强的力量感,但这是一个比较小众的需求,也不符合国内用户的习惯。我们可以把游戏做得足够有趣——在战斗终结技中加入大家耳熟能详的梗,让人物的动作更丰富,让武器的技能更出人意料……这是一个更大的发展方向,能够吸引到更加广泛的玩家。
与现在充斥微信小游戏平台上的大部分小游戏不同,在《开心射手》中,我们瞄准的主要玩法是在线对战。这是猎头专家第一个版本就包含的功能,也是游戏最核心的功能。
射手座团队认为,和真实的玩家对战,可以促进玩家真正主动地分享游戏。这是《开心射手》用户增长的个重要途径之一。
Q2:请问射手座团队有多少成员,开发《开心射手》是如何进行分工的呢?
射手座团队目前成员有 9 人,2 名产品,2 名美术,4 名开发,1名打杂。有趣的是,除了我这个专业打杂之外,还有许多同学也在兼职打杂。
《开心射手》是一个在线对战游戏,开发任务包括游戏服务端、游戏客户端、后台分析系统(前后端)多个部分。为了能更高效地完成任务,我们采用了模块负责制。产品同学提出模块需求之后,负责模块开发的同学会和产品同学一起对模块进行分割,确定模块完成的时间点。负责模块开发的同学一般是独立完成整个模块前后端的开发,在开发过程中根据需求提前推动其他岗位的同学提供相关资源。
Q3:从立项到第一个版本上线,大概花了多长时间?开发过程,存在的最大的困难是什么呢?
从立项《开心射手》 0.1 版本,到《开心射手》 1.0 版本上线,射手座团队花了整整2个月的时间。最大的困难是——人手不够。
《开心射手》立项的时候,射手座团队只有 5 个人,缺乏最重要的策划岗位,美术和开发力量也不足。在很长一段时间里,所有的团队成员都在扮演产品和开发的双重角色,这显然不是一个健康的团队状态。直到 5 月下旬,团队成员才全部到齐。也就是说,甚至在《开心射手》1.0 版本发布之后,我们都是在团队不齐整的情况下工作的。这为产品埋下了一些隐患,直接导致了后续版本的大调整。当然,福祸相依,这种工作方式也为之后射手座团队的模块负责制打下了基础。
另一个困难在于游戏本身。
《开心射手》的第一个版本就支持在线对战。与目前大部分的微信小游戏采用单机轻玩法不同,我们需要考虑服务器同步、邀请机制、等待机制、断线重连、战斗同步、复杂网络情况等等一系列问题。这些躲在后面的问题消耗了团队大量的开发/测试时间。我们的玩法需要大量新的角色,美术同学除了UI、动画、特效之外,还要不断设计新的人物,并为每个新的人物增加特有的主动技能表现和终结技动画表现。我们常常自嘲说,我们给自己挖了一个深坑,大家不断往里跳,但玩家却不一定知道坑里埋了多少人。
Q4:选择使用 Creator,除了因为团队成员对这个引擎更熟悉之外,在用它开发小游戏的过程中,Creator 有哪些优势和不足呢?
射手座团队的主要成员从 2013 开始使用 Cocos2d-x 引擎。对于整个 Cocos 的生态比较了解。这也是我们选择 Cocos Creator 的最重要的原因。另一个原因是,和 Unity 有点像的 Creator 的确能提升开发人员的幸福感。在 UI 编辑层面,和之前手拼代码相比简直是幸福太多了有木有!我们的“开发型美术”同学也可以直接在 Creator 中创建动画相关的 Prefab,提交到版本库中供开发直接使用。整个产品的开发流程顺畅了很多。
说一个常见的场景。开发同学从版本库 fetch 之后,发现动画效果不对。此时他会直接喊一嗓子“靠这效果有问题啊”,然后美术同学出马“靠真的有问题我改一下”,然后是“修改-推送-重新打开”,接着开发同学就可以继续愉快地写代码了。 如果在之前呢……逐帧动画之外的其他动画效果,都要开发人员苦逼的调代码,然后被美术吐槽“这尼玛做得是啥,放开她我来”,然后……当然就没有然后了……
Creator 作为一个年轻的工具,BUG 不少。例如 Box2D 和 Spine 的封装有一些问题,动画编辑器炒鸡难用而且存在各种不明所以的 BUG 。美术同学经常一边做动画一边骂:“这动画编辑器肯定是你们程序员做出来的!”团队中的开发小哥哥+老伯伯们只能默默躺枪,都没处说理去。下面请出射手座的几位成员现身说法吧(美术小哥哥意见最大了):
Orphen(中老年程序员):cc.Component 的 onLoad/onDestroy 方法有时会莫名失效,大概的情况出现在在 cc.Prefab 多级使用时,比如:A prefab 的脚本中实例化 B prefab,而 B prefab中又实例化了 C prefab,这时 cc.Prefab 的 cc.Component 组件的 onLoad/onDestroy 就会不执行。
C 姐回复:如果使用的是 1.9.3 以上版本,在运行时没有看到警告或者报错,那应该确实是引擎的 BUG
Ericrow(原画/动画/UI/特效/全套射鸡师): 我平时会在spine和ccc之间来回切换使用。Cocos Creator v1.9 的动画编辑体验可以用痛苦来形容。除了对关键帧的修改十分不便(比如无法复制和粘贴关键帧,复制图层和动画关键帧不方便之类),更是经常出现保存或修改的时候图层组件突然消失的情况。严重的时候我甚至是每操作一次就要重启一次项目来检查…… 升级了 v1.93 之后, Bug 的情况减少了,但还是有一些意外,例如往 Prefab 中添加新的图层时(非动画编辑状态下),打开动画编辑器无法找到该图层,需要保存关闭 Prefab 再次打开才可以看见。再如在交互上做了一些奇怪的修改,旧版本中动画编辑器操作栏上增加 Clip 的按钮不见了(我找了半天,最后放弃了,选择在层级树中新增 Clip 并手动添加到 Prefab 中)。还有就是在动画编辑器中对图层添加新的关键帧的方式也必须吐槽一下。虽然旧版本的减号完全形同虚设,但新版本这个会自动隐藏的汉堡按钮,实在让人心累(在交互的过程中需要付出较大注意力才可以准确击中按钮,这并不能算是一个好的交互行为)。
整个动画编辑器的编辑方式,实在算不上是友好,只能完成一些 UI 小动画级别的简单编辑,离一个优秀的(角色/场景)动画编辑器还是差得非常远。这一点如果用过 Spine 的话很容易做出比较。更别提与 2D 动画之神 Flash 的比较了。
动画编辑器还有一个很重要的功能缺失,几个关键功能居!然!没!有!快!捷!键!每一次播放暂停,关键帧行为,都需要用鼠标来完成,大大降低了动画编辑的效率。
最后说一点建议:如果想让美术设计师也能愉快地使用编辑器,还是请一个产品经理来重新设计这个工具吧,目前整个工具的程序员思维非常明显,对于美术设计师很不友好。
C 姐回复:1.9.2 的动画编辑器经历了一次重写,确实问题比较多……目前的 bug 已经都尽量收敛了,如果到了 1.9.3 以上版本还有相关问题,欢迎继续吐槽。使用体验方面,已经把建议都转交给了开发小哥,小哥表示,一定会尽量赶在 1.10 进行完善。
阿森(青年程序员):Cocos Creator 一直有一个奇怪的问题没有找到原因,具体表现是这样的:《开心射手》中投掷的武器在碰撞回调中,调用了武器节点中某个子节点的组件逻辑,这个组件引用了某个 cc.Prefab,并在逻辑中根据这个 cc.Prefab 来创建节点,一般情况下逻辑是没有任何问题的,但从后台收的的报错日志中,我们发现偶尔这个引用属性居然为空,导致无法正确的创建节点最终报错。这个问题目前还在排查中,未能找到引发这个问题的根源。
C 姐回复:开发小哥表示,这一般是该 prefab 被销毁引起的,可能跟异步调用顺序、资源释放有关。可以在访问所需对象前,通过 obj.isValid 判断是否已经被销毁了。
Q5:小游戏生态建设在不断完善,前几日的微信公开课上,微信团队也分享了很多广告和规则方面的信息,那么《开心射手》对于之后的变现道路有什么样的规划吗?
《开心射手》已经开启了 Banner 广告和激励视频,这是产品当前的主要变现方式。打铁还需自身硬。我们知道,赚钱的游戏首先必须是一个好游戏。《开心射手》近期更新加入了道具系统,将单一的游戏玩法进行了深度上的扩展。新加入的道具商城和角色商城让玩家的购买行为更加方便。游戏中还加入了高级货币和体力值。任务系统、成就系统和激励视频的加入为玩家获取高级货币提供了更多条件。
《开心射手》在立项之初就申请了版号。但碰上文化部门重组(你们懂的),目前无法实现内购。有消息说 7 月份版号开始发放,所以嘛,未来可期。射手座团队的许多成员都是多年的游戏爱好者,射手座团队的目标是“做出让朋友、家人都爱玩的精品游戏”。我们会不断打磨《开心射手》这个产品,并适时推出新游戏,向团队的目标逐渐靠近。
Q6:如何看待微信小游戏对于小团队而言的机遇呢?
微信小游戏是一个新兴的平台。
许多人说这半年处于微信小游戏的红利期,但我并不看好这个“红利期”的说法。无论在哪个平台,小团队要想成功,就必须遵循这个平台的规则,推出符合平台特性的产品。简单粗暴的快速开发,为了抢占这个所谓的“红利期”而做出大量垃圾游戏,并不是微信小游戏平台希望达到的效果。
作为小团队,应该找到自己团队的基因,瞄准精品目标,推出符合微信小游戏平台需要的轻度,粘性高,用户主动分享,社交化的产品,这样才能获得平台和玩家的青睐,才可能真正抓到平台的“红利”,实现自己的目标,完成团队的蜕变。
Q7:是否有关于微信小游戏的运营经验可以同其他开发者分享?
微信玩家是一个很有趣的群体,我们不能像对待普通游戏玩家那样对待他们。在《开心射手》运营的过程中,我们发现了许多有趣的现象,找一些有代表性的分享给大家。
小游戏玩家,30-39岁的是主力。这个不用多分析,因为它和微信用户的年龄结构是高度重合的。
《开心射手》玩家中,女性玩家达到60%以上。这或许和游戏风格有关。《开心射手》的美术风格比较讨女性玩家喜欢。游戏的玩法会被自大的男性玩家们认为太简单(其实远非如此)而不屑于尝试。反而女性玩家们由于风格的原因更乐于尝试。
微信玩家的畏难情绪很严重。这意味着游戏不应该有太大难度,而且应该避免竞争。当然,这是大部分游戏设计都需要遵循的原则。需要注意的是,微信用户并不是严格意义上的游戏玩家。他们没有游戏玩家的基本素养,只是希望在闲暇时间找找乐子的一群普通人。在游戏设计上我们认为普通玩家都理解的通用规则在他们身上并不适用。了解了这一点,你就会发现,微信小游戏的设计,与传统手游的设计有很大的差别。这也就能理解为什么微信小游戏平台目前充斥着大量同质化严重的简单游戏的原因了——渠道商永远拥有最敏锐的嗅觉。
Q8:原贴中的其他内容大概什么时间会更新呢?
《开心射手》还在紧锣密鼓的开发当中。下一款游戏的开发也已经提上了日程。整个团队的工作量非常饱和,我们会以每周一至二篇的速度来更新这个专题。更新的内容并不限于目前已经在提纲中列出的,我们也会将开发过程中碰到的有价值的新问题更新到提纲中去。
游戏制作是一条不归路,选择了就不会放弃。我们相信共享的力量,会把《开心射手》中积累的经验毫无保留的分享出来。射手座团队能力虽然有限,但我们会尽力而为。“怕什么真理无穷,进一寸有一寸的欢喜”。
非常感谢射手座团队接受 Cocos 的专访,也祝愿《开心射手》能够取得好战绩,扫描下方小程序二维码即可体验这款游戏。
Jacky 的其他小游戏相关文章: